#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int main(){  
	int fd = -1;  
	int ret = 1;  
	int buffer = 1024;  
	int num = 0;  
	
	// 1. 打开文件，如果文件不存在，则创建文件
	// 如果打开文件失败，则直接退出
	// 如果打开成功，则返回文件描述符 fd
	if((fd = open("./test", O_RDWR|O_CREAT)) == -1)  {    
		printf("Open Error\n");    
		exit(1);  
	}  
	
	// 2. 将 int 的大小写入到文件中	
	ret = write(fd, &buffer, sizeof(int));  
	if(ret < 0)  {    
		printf("write Error\n");    
		exit(1);  
	}  
	printf("write %d byte(s)\n",ret);  
	
	// 将页面缓存中所有脏页写回到磁盘
	//sync();
	// 将指定文件的脏页写回磁盘
	fsync(fd);	
	
	// 3. 从文件中读取 int 大小的数据
	ret= read(fd, &num, sizeof(int));  
	if(ret==-1)  {    
		printf("read Error\n");    
		exit(1);  
	}  
	
	printf("read %d byte(s)，the number is %d\n", ret, num);  
	
	// 4. 关闭文件
	close(fd);  
	
	return 0;
}
